1. Field of the Invention
The present invention relates to an information processing system, an information processing method and a computer-readable storage medium storing a computer program.
2. Description of the Related Art
In current system development in which the trend toward a wider variety of products, further complexity of functionality and increased size of software continues, software is divided according to functionality, and development is performed for each domain. Furthermore, attention is given to component-based development that achieves more efficient development and improves quality by reusing software in the form of components that serve as parts of the software. In recent years, it has become common to perform development by using a plurality of processors (CPUs) and operating systems (OSs) within a single device according to product requirements and hardware characteristics. As a result, even within the device, component-based development in such a distributed environment is required. Generally, when using different CPUs/OSs in a distributed environment performs component-based development, the development is performed on component-based development middleware. The component-based development middleware supports a process (data marshalling) for absorbing the difference in data expression format (byte order, alignment) between environments, as well as a service call between components of different CPUs and processes. The component-based development middleware receives input of interface definition information, generates a remote procedure call module, and supports data marshalling during communication. The use of component-based development middleware can achieve component location transparency, and the developers can utilize services in a distributed environment in the same manner as executing a function within the same process by a remote procedure call. With the remote procedure call by the component-based development middleware, component application logic and development environment specific implementation are separated, improving the ease of development and the reusability of components.
The remote procedure call has the following problems unlike an ordinary function call within the same process. First, inside the remote procedure call, “data marshaling” is performed in addition to an “inter-component communication process”. Accordingly, it not only requires a longer execution time than that of a function within the same process, but also leads to a degradation in the throughput of the entire system when the call is frequently made. For this reason, it is necessary to suppress unnecessary calls from which valid results cannot be obtained, but timing control for acquiring a valid result requires establishing communication, causing an overhead. Secondly, the remote procedure call executes a service of a server in a distributed environment, and thus it is difficult to monitor whether or not the server is busy by using a low communication overhead similar to that used in the case of the same process. Accordingly, when the server is busy processing other requests or processes of the server itself, the client is blocked for a long period of time, interrupting the processing.
Japanese Patent No. 3544140 proposes, as methods for solving the above problems, a method of checking the availability of resources by using a dedicated remote procedure call and a method of providing a component dedicated to the management of the availability of resources and querying the availability in advance. With this method, on the client side, it is possible to avoid blocking due to waiting for resources to be released. On the server side, however, the remote procedure call is driven by a request from the client, and thus when the client makes excessive calls, the processing throughput of the server application is decreased, as a result of which the following problems arise. First, even when there is no change in the content of replies from the server component, because there is no configuration that notifies the client of processing, the server may process excessive requests. Secondly, even when the server component needs to execute a high priority process, it also has to respond to a request from the client, and thus the high priority process is interrupted. Thirdly, even when it is necessary to put the server component in a standby state in a power saving mode of the device or the like, it is not possible to immediately interrupt the service.